<?php
/**
 * <https://y.st./>
 * Copyright © 2017 Alex Yst <mailto:copyright@y.st>
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <https://www.gnu.org./licenses/>.
**/

$xhtml = array(
	'title' => "Minetest mods and $a[ISP] choices",
	'body' => <<<END
<img src="/img/CC_BY-SA_4.0/y.st./weblog/2017/03/29.png" alt="Various color reversals of standard mineral block nodes" class="weblog-header-image" width="800" height="600" />
<section id="to-do">
	<h2>To-do list</h2>
	<ul>
		<li>
			Acquire stuff for my new home:
			<ul>
				<li>
					A bed
				</li>
				<li>
					A broom
				</li>
				<li>
					A dustpan
				</li>
				<li>
					A carpet broom
				</li>
			</ul>
		</li>
		<li>
			Inform people that I&apos;ve moved
			<ul>
				<li>
					Relevant online accounts
				</li>
				<li>
					My boss
				</li>
			</ul>
		</li>
		<li>
			<del>Switch Kubbi subscription over to new credit card</del>
		</li>
		<li>
			<del>Go pay other credit card bill (card was charged for Kubbi subscription)</del>
		</li>
		<li>
			Get old school to reissue reimbursement cheque
		</li>
		<li>
			Finish stabilizing <a href="https://git.volatile.ch./y.st./include.d/releases">include.d</a> and put out another release (low priority)
		</li>
	</ul>
</section>
<section id="general">
	<h2>General news</h2>
	<p>
		It was raining this morning, so I didn&apos;t feel like going out right away.
		Instead, I worked on a new Minetest mod.
		Yesterday, after seeing the Nyan Cat and rainbows glow, I got a bit hesitant about using them as crafting material for creating tools of infinite durability.
		I kind of wanted to <strong>*keep*</strong> those rare nodes instead.
		However, I also need a pick that&apos;ll last and that&apos;s difficult enough to get ahold of that users won&apos;t complain it makes the game too easy.
		I mean, if you have to really earn this mighty tool, that should be enough to keep complaints down.
		In fact, I might even get complaints in the other direction, saying the pick should be <strong>*easier*</strong> to acquire; however, as it&apos;s an addition to the game, users have to accept the fact that if they don&apos;t like the difficulty in acquiring the pick, they can use the tools the default game provides instead.
		My new idea for pick material is a dense form of the standard ores.
		For example, a steel block is the densest form of iron the game provides normally.
		Crafting nine steel blocks together will create a new metal.
		Crafting nine of those together will create another new metal.
		And finally, crafting nine of <strong>*those*</strong> together will yield one of the metal needed to make my pick; you need three of a material to make a pick from.
		That means a pick costs 19683 of the mineral you want to craft it from.
		All six basic ores will have these three denser forms added to them.
		Initially, my intent was that with each layer of density added, the time required to mine that node with a given tool would double.
		However, I forgot that digging times are attached to tools, not nodes.
		Without some clever hackery, what I&apos;m after isn&apos;t possible.
		I&apos;m not sure I want a hacky solution though.
		I might come up with a different solution instead.
		Perhaps, at least in the densest forms of the nodes, only the new tools can mine them or something.
	</p>
	<p>
		After building this basic and incomplete mod to add the new nodes, I started looking at more general use cases.
		I decided to split the tools off into their own mod, to be built later.
		The dense mineral nodes would have their own mod that&apos;d serve as a base for other crafts, and more importantly, provide better storage of minerals.
		I ran a few calculations to figure out just exactly how efficiently minerals needed to be stored, and ran into some trade-off issues.
		The more efficiently minerals are stored, the more of a mineral it takes to make the good picks.
		After all, to add storage efficiency means to add another layer of compression to the densest mineral nodes, upping mineral count by a factor of nine each time.
		Eventually, I remembered the <code>stack_max</code> property of Minetest items.
		By default, it&apos;s set to <code>99</code>, but it can be set higher.
		Tests in the past have shown this number can be set as high as <code>32767</code>; any higher, and a bug is activated.
		I don&apos;t recall exactly what the bug was, but I think it made the number be treated as <code>99</code>.
		Tests today show that this bug has been corrected though. It can now be set to <code>65535</code>, which is the legitimate maximum allowed by the game, even for actions that bypass the normal maximum.
		My dense nodes can be set to be stacked higher than normal for even more increased storage efficiency without requiring denser compression through crafting!
	</p>
	<p>
		This brings up the question of if the upper two compression levels are even needed in the general use case though.
		If not, those nodes need to be removed.
		However, removing them means making the picks even easier to craft.
		But doesn&apos;t that make them <strong>*too*</strong> easy to craft?
		Crafting unbreakable tools needs to be sufficiently difficult.
		I did a few pallet swaps on the mineral block nodes by inverting the red, the green, and/or the blue, then for now, chose the best-looking options in my opinion for use as the singular compressed node images.
		These are meant mainly for storage and secondarily as crafting items, not in-world nodes, so building textures for them would be overkill.
	</p>
	<p>
		I headed in to work today, but when I got there, I was sent back home.
		The head manager didn&apos;t even know I was going to show up!
		It seems that while my former coworker was responsible enough to get their already-scheduled shifts covered before quitting on us, they didn&apos;t communicate this to the management.
	</p>
	<p>
		I really didn&apos;t want to head back out at this point.
		I&apos;d wanted to in the morning, but by now, I just wanted to stay home.
		However, the weather&apos;d cleared up, and I did need to get my credit card bill paid soon ...
		I headed home to grab my credit card bill and cash after work, then left for the credit union.
		There, they deposited my three dollar payment into my savings account, then paid my bill from my savings account.
		I guess they can&apos;t directly take bill payments and have to shuffle them through the savings account to do anything.
		Strangely though, they didn&apos;t need my $a[ID] to withdraw the money from my account, which was great, as I wasn&apos;t carrying it.
		I hope though that the only reason they could withdraw money to pay my bill without my $a[ID] is that I&apos;d just brought the money.
		Hopefully, if someone claimed to be me and tried to take money without bringing in the money they were taking, they&apos;d be carded.
	</p>
	<p>
		While I was out, I headed to the Dollar Tree for oven mitts.
		I was surprised by their merchandise selection!
		I haven&apos;t had a need to go to that side of the store before, but they&apos;ve got just about everything!
		The one thing I didn&apos;t see was bath towels.
		They have dish towels, but no bath towels.
		I was only going to get one oven mitt, and chose one with a fruit pattern, but later decided to to get a second.
		The pattern was only on one side though, so I tried to find a reverse mitt with the pattern on the other.
		No dice.
		They were all right-handed mitts!
		I ended up putting the fruit-pattern mitt back and grabbing two mitts with no printed patter - ambidextrous mitts.
		I also picked up a colander, a spoon rest, and a grater.
		On my way out, I saw some jelly beans, so I looked at the ingredients, knowing I couldn&apos;t actually get them because they contained gelatin or something.
		They didn&apos;t though!
		They were completely vegan!
		I haven&apos;t had jelly beans in over two years, so I went a bit overboard and bought eight small packs of them.
		They weren&apos;t the best jelly beans I&apos;ve had, after all, they&apos;re discount store jelly beans.
		Except ... they&apos;re vegan jelly beans, which means they <strong>*are*</strong> the best jelly beans I&apos;ve had, even if they are a bit hard and don&apos;t taste as good as some other jelly beans on the market.
	</p>
	<p>
		I received another ad for the cheaper $a[ISP] today in the mail.
		I noticed this time though that to get their plan, the ad says you need to also buy a qualifying home telephone plan.
		So that&apos;s where they price gouge you.
		No thanks, I don&apos;t even want telephone service here.
		Checking out the other ads from them, it looks like they were telling me I needed a home telephone plan all along, they&apos;ve just been doing it in small print.
		It got me thinking though.
		I know there&apos;s a noxious cable monopoly.
		Only one company in the area is delivering service over the cable lines.
		So how are the other $a[ISP]s connecting me to the network?
		Is it through the <strong>*telephone lines*</strong>!?
		If that&apos;s the case, there&apos;s no both getting out of buying into the cable monopoly and avoiding home telephone service if I want home Internet service.
	</p>
	<p>
		I talked to some networking experts, and yeah, $a[DSL] service is provided over telephone lines.
		I thought only dial-up service used the telephone wires.
		Someone mentioned I could get fibre Internet service instead, so I looked into that.
		There <strong>*is*</strong> a fibre-based $a[ISP] in my city, but they don&apos;t service my complex over fibre.
		Instead, they service it with 3 $a[Mbps] $a[DSL].
		Furthermore, they&apos;re the company that keeps sending me ads saying I need telephone service too.
		Looking deeper though, they only require telephone service in some areas, and my complex isn&apos;t one of them.
		Furthermore, the price at my apartment is even cheaper than quoted in the ad!
		There&apos;s no contract, but you need to buy or rent a modem.
		Renting the modem negates the cheapness of the Internet connection though, so I&apos;d need to find a compatible modem somewhere.
		They sell the modems for \$100 $a[USD] each, but perhaps I could find a cheaper one used.
		But do I need to?
		It turns out I don&apos;t!
		I grabbed a Wi-Fi router from the giveaway table in the laundry room, thinking I&apos;d eventually need to set up Wi-Fi after getting Internet service.
		This router, which doesn&apos;t mention anywhere on its label being a modem, is on the $a[ISP]&apos;s list of approved modems.
		It must be a router/modem combo!
		It still needs a power cord though, and a telephone line to plug it into the wall with.
		Further research shows this $a[ISP] isn&apos;t what they look like to new customers though.
		After six months, the price jumps from \$15 $a[USD] per month to some unstated price, which research indicates might be \$56 $a[USD] per month.
		Furthermore, they demand either a credit check or a \$75 $a[USD] deposit, which they&apos;ll give back after a year.
		But if I cancel at the six-month point when the price jump is about to occur, do I get my deposit back?
		Lastly, it looks like they might issue dynamic $a[IP] addresses.
		That means I can&apos;t host any services.
		No $a[Tor] exit node, no Web server, and no Minetest server.
		Without the option to host services, I find it very difficult to justify signing up for their service.
	</p>
	<p>
		I went through the supposedly-complete list of $a[ISP]s in my area, and it seems most are either using some sort of wireless service (cellular or satellite) or aren&apos;t servicing my apartment.
		There&apos;s a duopoly here.
		I can chose between this $a[DSL] provider that wants to screw customers, doesn&apos;t even provide what I need, and offers only slow connections; or the cable company that is known to be one of the more evil cable companies and also wants to either lock me in a contract and jack the bill up when the contract expires or jack the bill up now if I refuse to enter into the contract.
		There are no good options here.
	</p>
	<p>
		My <a href="/a/canary.txt">canary</a> still sings the tune of freedom and transparency.
	</p>
</section>
END
);
